<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 1.变量提升只会提升变量名的声明，而不会提升变量的赋值初始化。
    // 2.函数提升的优先级大于变量提升的优先级，即函数提升在变量提升之上。
    console.log(a);
    var a = 1;
    console.log(a);

    function a() {
      console.log(2);
    }
    console.log(a);
    var a = 3;
    console.log(a);

    function a() {
      console.log(3);
    }
    a(); // 变量提升a不再是一个函数,所以报错
    console.log(a);
  </script>
</body>

</html>